From the Firehose

Контекстне меню Dolphin

Створення контекстної дії для Dolphin.

Відкрийте теку ~/.local/share/kservices5/ServiceMenus. Якщо цієї теки немає, просто створіть її.

mkdir -p ~/.local/share/kservices5/ServiceMenus
kate ~/.local/share/kservices5/ServiceMenus/edit-from-root.desktop

Щоб було зручно редагувати текстові файли від імені root - створити файл під назвою edit-from-root.desktop. Називати файл можна як завгодно, головне додати суфікс .desktop

edit-from-root.desktop

[Desktop Entry]
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
X-KDE-Priority=TopLevel
Type=Service
MimeType=text/*
Actions=EditFromRoot

[Desktop Action EditFromRoot] Name=Edit from root Name[uk]=Редагувати як root Icon=alienarena # Exec=konsole -e sudo nano -w %U Exec=konsole -e sudo vim

Перша секція створює пункт контекстного меню із вказівником на дію (Actions). У рядку b>MimeType можна вказати типи файлів, для яких відображатиметься дія.

Друга секція визначає саму дію. Рядок Name визначає текст, яким буде підписано дію в контекстному меню. Ну, а Exec містить команду, яку потрібно виконати. Сюди можна вписувати ті ж команди, що вводяться в термінал, або шлях до якогось скрипту.

Перед редагуванням файлу зберегти його резервну копію.

Вручну це робиться так: виклик контекстного меню файлу -> "Копіювати" -> "Вставити" -> введення нової назви файлу. Можна написати desktop-файл:
[Desktop Entry]
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
X-KDE-Priority=TopLevel
Type=Service
MimeType=all/all
Actions=SaveState

[Desktop Action SaveState] Name=Save state Exec=~/.local/share/kservices5/ServiceMenus/save-state.sh

Потрібно також створити вказаний у Exec скрипт:

vim ~/.local/share/kservices5/ServiceMenus/save-state.sh
#!/bin/bash

file_name=$1
cp "$file_name" "$file_name"@$(date +%Y.%m.%d-%H:%M:%S)

exit 0

[peturik@peturik-precision5540 ~]$ cd ~/.local/share/kservices5/ServiceMenus
[peturik@peturik-precision5540 ServiceMenus]$ ls
app-folder-mpv.desktop  app-folder-player.desktop  edit-from-root.desktop  save-state.desktop  save-state.sh
[peturik@peturik-precision5540 ServiceMenus]$ cat app-folder-player.desktop
[Desktop Entry]
Actions=folderappopen
ServiceTypes=KonqPopupMenu/Plugin,inode/directory
Type=Service
X-KDE-Priority=TopLevel

[Desktop Action folderappopen] Exec=deadbeef Icon=deadbeef Name=Відкрити теку в DeadBeef

[peturik@peturik-precision5540 ServiceMenus]$ cat app-folder-mpv.desktop
[Desktop Entry]
Actions=folderappopen
ServiceTypes=KonqPopupMenu/Plugin,inode/directory
Type=Service
X-KDE-Priority=TopLevel

[Desktop Action folderappopen] Exec=mpv Icon=mpv Name=Відкрити теку в mpv Media Player

[peturik@peturik-precision5540 ServiceMenus]$ cat edit-from-root.desktop
[Desktop Entry]
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
X-KDE-Priority=TopLevel
Type=Service
MimeType=text/*
Actions=EditFromRoot

[Desktop Action EditFromRoot] Name=Edit from root Name[uk]=Редагувати як root Icon=alienarena #Exec=konsole -e sudo nano -w %U Exec=konsole -e sudo vim

[peturik@peturik-precision5540 ServiceMenus]$ cat save-state.desktop
[Desktop Entry]
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
X-KDE-Priority=TopLevel
Type=Service
MimeType=all/all
Actions=SaveState

[Desktop Action SaveState] Name=Save state Icon=yast-timezone Exec=~/.local/share/kservices5/ServiceMenus/save-state.sh

[peturik@peturik-precision5540 ServiceMenus]$ cat save-state.sh
#!/bin/bash

file_name=$1 cp "$file_name" "$file_name"@$(date +%Y.%m.%d-%H:%M:%S)

exit 0

Category: Linux | Comments: 0

Comments: 0

About

Customize this section to tell your visitors a little bit about your publication, writers, content, or something else entirely. Totally up to you.